package com.css.dzj.dzjportal.modules.creditinfobase.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;
import java.util.Objects;

public class ZfjgClueEntity {
    private String id;
    // 企业名称
    private String enterpriseName;
    // 企业证件号码
    private String enterpriseIdNumber;
    // 企业证件类型
    private String enterpriseIdType;
    // 信用线索原因
    private String creditClueReasons;
    // 涉及负面详情
    private String negativeDetails;
    // 省级
    private String provincial;
    // 市级
    private String municipalLevel;
    // 县级
    private String countyLevel;
    // 国标一级行业名称
    private String nationalStandard1Name;
    // 国标二级行业名称
    private String nationalStandard2Name;
    // 国标三级行业名称
    private String nationalStandard3Name;
    // 国标四级行业名称
    private String nationalStandard4Name;
    // 评估日期
    private Date evaluationDate;
    // 信用线索评估状态 0: 已接收 1：已调整 2：已反馈
    private String status;
    // 创建人
    private String createUser;
    // 创建时间
    private Date createTime;
    // 更新人
    private String updateUser;
    // 更新时间
    private Date updateTime;

    @Id
    @GeneratedValue(generator = "idGenerator")
    @GenericGenerator(name = "idGenerator", strategy = "com.css.dzj.zfjg.common.util.SnowflakeId")
    @Column(name = "Id")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "Enterprise_Name")
    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    @Basic
    @Column(name = "Enterprise_Id_Number")
    public String getEnterpriseIdNumber() {
        return enterpriseIdNumber;
    }

    public void setEnterpriseIdNumber(String enterpriseIdNumber) {
        this.enterpriseIdNumber = enterpriseIdNumber;
    }

    @Basic
    @Column(name = "Enterprise_Id_Type")
    public String getEnterpriseIdType() {
        return enterpriseIdType;
    }

    public void setEnterpriseIdType(String enterpriseIdType) {
        this.enterpriseIdType = enterpriseIdType;
    }

    @Basic
    @Column(name = "Credit_clue_reasons")
    public String getCreditClueReasons() {
        return creditClueReasons;
    }

    public void setCreditClueReasons(String creditClueReasons) {
        this.creditClueReasons = creditClueReasons;
    }

    @Basic
    @Column(name = "Negative_Details")
    public String getNegativeDetails() {
        return negativeDetails;
    }

    public void setNegativeDetails(String negativeDetails) {
        this.negativeDetails = negativeDetails;
    }

    @Basic
    @Column(name = "Provincial")
    public String getProvincial() {
        return provincial;
    }

    public void setProvincial(String provincial) {
        this.provincial = provincial;
    }

    @Basic
    @Column(name = "Municipal_Level")
    public String getMunicipalLevel() {
        return municipalLevel;
    }

    public void setMunicipalLevel(String municipalLevel) {
        this.municipalLevel = municipalLevel;
    }

    @Basic
    @Column(name = "County_Level")
    public String getCountyLevel() {
        return countyLevel;
    }

    public void setCountyLevel(String countyLevel) {
        this.countyLevel = countyLevel;
    }

    @Basic
    @Column(name = "National_Standard_1_Name")
    public String getNationalStandard1Name() {
        return nationalStandard1Name;
    }

    public void setNationalStandard1Name(String nationalStandard1Name) {
        this.nationalStandard1Name = nationalStandard1Name;
    }

    @Basic
    @Column(name = "National_Standard_2_Name")
    public String getNationalStandard2Name() {
        return nationalStandard2Name;
    }

    public void setNationalStandard2Name(String nationalStandard2Name) {
        this.nationalStandard2Name = nationalStandard2Name;
    }

    @Basic
    @Column(name = "National_Standard_3_Name")
    public String getNationalStandard3Name() {
        return nationalStandard3Name;
    }

    public void setNationalStandard3Name(String nationalStandard3Name) {
        this.nationalStandard3Name = nationalStandard3Name;
    }

    @Basic
    @Column(name = "National_Standard_4_Name")
    public String getNationalStandard4Name() {
        return nationalStandard4Name;
    }

    public void setNationalStandard4Name(String nationalStandard4Name) {
        this.nationalStandard4Name = nationalStandard4Name;
    }

    @Basic
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    @Column(name = "Evaluation_Date")
    public Date getEvaluationDate() {
        return evaluationDate;
    }

    public void setEvaluationDate(Date evaluationDate) {
        this.evaluationDate = evaluationDate;
    }

    @Basic
    @Column(name = "Status")
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Basic
    @Column(name = "Create_User")
    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    @Basic
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    @Column(name = "Create_Time")
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Basic
    @Column(name = "Update_User")
    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    @Basic
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    @Column(name = "Update_Time")
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o)  { return true; }
        if (o == null || getClass() != o.getClass()) { return false; }
        ZfjgClueEntity that = (ZfjgClueEntity) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(enterpriseName, that.enterpriseName) &&
                Objects.equals(enterpriseIdNumber, that.enterpriseIdNumber) &&
                Objects.equals(enterpriseIdType, that.enterpriseIdType) &&
                Objects.equals(creditClueReasons, that.creditClueReasons) &&
                Objects.equals(negativeDetails, that.negativeDetails) &&
                Objects.equals(provincial, that.provincial) &&
                Objects.equals(municipalLevel, that.municipalLevel) &&
                Objects.equals(countyLevel, that.countyLevel) &&
                Objects.equals(nationalStandard1Name, that.nationalStandard1Name) &&
                Objects.equals(nationalStandard2Name, that.nationalStandard2Name) &&
                Objects.equals(nationalStandard3Name, that.nationalStandard3Name) &&
                Objects.equals(nationalStandard4Name, that.nationalStandard4Name) &&
                Objects.equals(evaluationDate, that.evaluationDate) &&
                Objects.equals(status, that.status) &&
                Objects.equals(createUser, that.createUser) &&
                Objects.equals(createTime, that.createTime) &&
                Objects.equals(updateUser, that.updateUser) &&
                Objects.equals(updateTime, that.updateTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, enterpriseName, enterpriseIdNumber, enterpriseIdType, creditClueReasons, negativeDetails, provincial, municipalLevel, countyLevel, nationalStandard1Name, nationalStandard2Name, nationalStandard3Name, nationalStandard4Name, evaluationDate, status, createUser, createTime, updateUser, updateTime);
    }
}